我的服务器被SSH暴力登录了吗?
上面截图的这块日志,是CentOS7系统,messages中的一段日志,很多人在排查问题的时候,看到messages里面大量的这种类型的日志,都是一脸懵逼,搜索引擎一搜,也没有上面结果,大多说这是正常的日志,不用担心,如果需要关闭,redhat官网有提示如何关闭
还有一些说这是有用户登录系统,当然,redhat在其官网solutions关于这个问题的回答中,也表明,这些消息是正常的,是用户每次登录都可以看到的消息,要禁止这些日志显示在messages中,可以使用rsyslog中的过滤器进行丢弃
看到是用户登录产生的日志,很多人就会说,是不是我的服务器被暴力破解了,这么多登录日志
上面的说法,不能说错,但不全面,所以,整理了这篇文章
这部分日志,记录了大概以下几个信息
为用户创建slice
启动用户会话
启动了用户会话
删除用户会话
删除用户slice
停止用户slice
总体就是这几个部分,但是这几个部分不一定会每次都按照这个顺序出现,后面慢慢来讲,接着往下看
首先来说这个slice,我们都知道,CentOS7上,是用systemd进行资源管理的,而slice是systemd下面的控制组单元
我们从上面的图可以看到,首先就是为用户创建了一个slice文件,这个以".slice"为后缀的单元文件,是用于封装管理一组进程资源占用的控制组的slice单元
这类单元,是通过在cgroup树中创建一个节点实现资源控制的,对slice单元施加的资源限制,将会作用于这个slice单元所包含的全部进程的集合,全部的slice单元按照树形层次结构组成一棵资源控制树,干巴巴的文字,你可能不太好理解,上图看
这个就是系统中的slice
我们这里关心的是用户的slice,所以我们看用户的slice,通常用户的slice,中间那个数值是用户的uid,我这个虚拟机只有root用户,看下root用户的slice
看一下,是不是对于一个用户资源进行了控制,以组管理,以CGroup树型层次结构
这里顺便说下,为什么上面说,日志中这几个部分不一定会同时出现,通常一个用户第一次创建了slice,没有删除之前,后面这个用户再开启会话的时候,不会再创建slice,只会开启会话,所以日志只有开启会话和,开启了会话
root用户第一次登录的时候,创建了slice
下面是后面用户登录的时候,messages记录的日志,启动会话
用户退出的时候,就会删除用户会话
如果想看slice文件的话,可以在/sys/fs/cgroup下面,对应各个资源组下面,看相应的slice的资源限制
接着往下看,什么时候会删除slice,我们先创建个用户,我这里用nginx用户,设置允许远程登录,接着登录,看下messages日志
看下这个slice
接着,退出nginx登录,可以看到,nginx的slice被删除了
通过上面这部分,最起码应该了解了这部分日志的意思了,接着继续
上面说的都是用户登录的时候,产生的这些日志,为什么我在文章开头,说这个说法不全面呢,上面nginx退出的截图中,我故意截取了中间有一个root用户的Started Session的日志信息
这个时候,我是没有操作root用户登录的,这个是虚拟机,也不可能有其他人登录的,所以那这是怎么产生的?
我们还是看一下root用户的slice,session 8是我刚登录的,执行了查看slice命令的,session 5是我通过另外一个终端窗口查看messages日志的,而session 1,并不是我执行的,可以通过pid查看该进程,但是我查看的时候,这个进程已经结束了
不过没关系,我通过root用户的Started Session产生时间分析,应该是定时任务产生的
看规律是每小时执行的,所以查看cron的hourly下面,确实有该定时任务
所以,当你为用户配置了定时任务时,用户执行定时任务时,也会启动会话,产生这类日志
目前没有查到任何资料总结说哪些调用会启动该日志,但有资料说该日志是由systemd的session_start_scope()打印的,能力有限,就没有办法分析了
所以,这部分日志代表用户登录系统不准确,要表示定时任务也不准确,所以可以忽略这部分日志
另外,检查系统日志,确认是否由用户登录系统,还是需要通过btmp、wtmp和secure日志进行确认
last命令可以查看wtmp的信息,lastb可以查看btmp的信息,而secure日志则记录了更详细的用户登录认证过程
如有任何问题,欢迎留言交流,如果觉得有用,请关注、转发、在看三连!!!